دسته بندی ها
12:30 1402/01/19

خطای The insert statemtnt conflict with foreign key در کلید خارجی

مشخصات سوال کننده :
کاربر : Murteza     امتیاز کاربر : ‎−1     رتبه کاربر : 7135
دسته بندی : WPF سی شارپ سی Vb.Net

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2099
1 نظر
fateme : بهتر هست ساختار جدول User و Customer رو هم قرار می دادید تا دقیق بشه راهنمایی کرد. وقتی شما یک کلید خارجی در یک جدولی دارید، باید حتما در جدول اصلی مقدار وجود داشته باشه. در اینجا شما یک کلید خارجی در جدول Customer دارید. ولی ظاهرا جدول User شما خالی هست یا اینکه ID یوزر در جدول Customer در دسترس نیست.

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 01:36 1402/01/19
هوش مصنوعی

پاسخ هوش مصنوعی

خطای "The insert statement conflicted with the foreign key constraint" به این معنی است که شما سعی دارید داده ای را در یک جدول وارد کنید که به یک کلید خارجی در جدول دیگری اشاره می کند، ولی آن داده در جدول مرجع موجود نیست.

برای رفع این مشکل:

  • ابتدا بررسی کنید که آیا رکورد مورد نظر در جدول مرجع (جدول کلید خارجی) وجود دارد یا خیر.
  • اگر رکورد وجود ندارد، ابتدا باید آن رکورد را در جدول مرجع وارد کنید.
  • اطمینان حاصل کنید که مقادیر کلید خارجی که در حال درج آن ها هستید، با مقادیر موجود در جدول مرجع مطابقت دارند.

به عنوان مثال اگر جدول شما به صورت زیر باشد:

CREATE TABLE ParentTable (
    Id INT PRIMARY KEY,
    Name VARCHAR(100)
);

CREATE TABLE ChildTable (
    Id INT PRIMARY KEY,
    ParentId INT,
    FOREIGN KEY (ParentId) REFERENCES ParentTable(Id)
);

برای وارد کردن رکورد به ChildTable، ابتدا باید اطمینان حاصل کنید که یک رکورد مرتبط در ParentTable وجود دارد:

INSERT INTO ParentTable (Id, Name) VALUES (1, 'Parent1');
INSERT INTO ChildTable (Id, ParentId) VALUES (1, 1);  -- این insert بدون خطا انجام می شود
به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : Radman 12:48 1402/01/19

با درود 

چون بین جدول یوزر و کاستومر شما ریلیشن وجود داره حتما ابتدا باید جدول یوزر پر باشه و در جدول کاستومر از یوزر ای دی موجود در یوزر استفاده کنید.

هم اکنون  دارین تو جدول کاستومر رکوردی ثبت می‌کنین که فیلد userid اون در جدول یوزر وجود ندارد.

ویرایش شده در شنبه 19 فروردین 1402 ساعت 13:32:50
به این پاسخ امتیاز بدهید    2
امتیاز: 169 رتبه: 9
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود